package me.chenqiang.tre.expression;

import me.chenqiang.tre.entity.Card;
import me.chenqiang.tre.entity.Device;

/**
 * 表示规则中单个表达式的接口
 */
public interface Expression {
	/**
	 * 根据卡片和设备信息判断是否符合表达式
	 * @param card
	 * @param device
	 * @return
	 */
	public boolean evaluate(Card card, Device device);
	/**
	 * 获取表达式类型
	 * @return
	 */
	public String getType();
	/**
	 * 获取表达式左侧的属性名称
	 * @return
	 */
	public String getPropertyName();
	/**
	 * 获取表达式右侧的值
	 * @return
	 */
	public String getPropertyValue();
}
